<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
    <title>ShellCheck: SC1064 – Expected a `{` to open the function definition.</title>
    <link rel="stylesheet" href="css/bootstrap.min.css" />
  </head>
  <body style="margin-left: auto; margin-right: auto; max-width: 800px">
    <h1>SC1064 – ShellCheck Wiki</h1>
    <a href="https://github.com/koalaman/shellcheck/wiki/SC1064">See this page on GitHub</a>
    <p style="display: none"><a href="index.html">Sitemap</a></p>
    <hr />
    <h2 id="expected-a--to-open-the-function-definition">Expected a
<code>{</code> to open the function definition.</h2>
<h3 id="problematic-code">Problematic code:</h3>
<div class="sourceCode" id="cb1"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb1-1"><a href="SC1064.html#cb1-1" aria-hidden="true" tabindex="-1"></a><span class="fu">foo()</span> <span class="kw">{</span></span>
<span id="cb1-2"><a href="SC1064.html#cb1-2" aria-hidden="true" tabindex="-1"></a>  <span class="bu">echo</span> <span class="st">&quot;hello world&quot;</span></span>
<span id="cb1-3"><a href="SC1064.html#cb1-3" aria-hidden="true" tabindex="-1"></a><span class="kw">}</span></span>
<span id="cb1-4"><a href="SC1064.html#cb1-4" aria-hidden="true" tabindex="-1"></a><span class="fu">foo()</span></span></code></pre></div>
<h3 id="correct-code">Correct code:</h3>
<div class="sourceCode" id="cb2"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb2-1"><a href="SC1064.html#cb2-1" aria-hidden="true" tabindex="-1"></a><span class="fu">foo()</span> <span class="kw">{</span></span>
<span id="cb2-2"><a href="SC1064.html#cb2-2" aria-hidden="true" tabindex="-1"></a>  <span class="bu">echo</span> <span class="st">&quot;hello world&quot;</span></span>
<span id="cb2-3"><a href="SC1064.html#cb2-3" aria-hidden="true" tabindex="-1"></a><span class="kw">}</span></span>
<span id="cb2-4"><a href="SC1064.html#cb2-4" aria-hidden="true" tabindex="-1"></a><span class="ex">foo</span></span></code></pre></div>
<h3 id="rationale">Rationale:</h3>
<p>ShellCheck found what appears to be the start of a function
definition, but without a function body.</p>
<p>One common cause is that you are trying to call a function by
appending parentheses, e.g. <code>foo()</code> like in C. Bash does not
use or allow parentheses after a function name to call it. The function
<code>foo</code> should be called using just <code>foo</code> like in
the example.</p>
<p>If you are declaring a function, make sure it looks like the correct
code above, and that it does not try to declare any parameters
(parameters are instead accessed with <code>$1</code> and up).</p>
<p>If you are trying to do something else, look up the syntax for what
you are trying to do.</p>
<h3 id="exceptions">Exceptions:</h3>
<p>POSIX allows the body of a function to be any compound command, e.g.
<code>foo() for i; do :; done</code>. Since this usage is rare,
ShellCheck intentionally requires the body to be <code>{ ..; }</code>
(or <code>( ..; )</code>):</p>
<div class="sourceCode" id="cb3"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb3-1"><a href="SC1064.html#cb3-1" aria-hidden="true" tabindex="-1"></a><span class="fu">foo()</span> <span class="kw">{</span></span>
<span id="cb3-2"><a href="SC1064.html#cb3-2" aria-hidden="true" tabindex="-1"></a>  <span class="cf">for</span> i<span class="kw">;</span> <span class="cf">do</span> <span class="bu">:</span><span class="kw">;</span> <span class="cf">done</span></span>
<span id="cb3-3"><a href="SC1064.html#cb3-3" aria-hidden="true" tabindex="-1"></a><span class="kw">}</span></span></code></pre></div>
<p>This additional structure requirement helps improve error messages
and suggestions by not parsing down a path that less advanced users
wouldn't expect.</p>
    <hr />
    <p style='font-size: 80%'><a href="../index.html">ShellCheck</a> is a static analysis tool for shell scripts. This page is part of its documentation.</p>
  </body>
</html>


